package cn.seecoder.ai.service;

import cn.seecoder.ai.model.vo.ModelVO;
import cn.seecoder.ai.model.vo.ResultVO;
import com.univocity.parsers.annotations.Validate;
import io.swagger.annotations.ApiOperation;
import org.springframework.scheduling.annotation.Async;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

/**
 * @author fanyanpeng
 * @date 2023/4/17 2:04
 */
@Validated
public interface ModelService {




    public ModelVO createModel(@Valid ModelVO modelVO);


    public List<ModelVO> getModelVOList(Integer userId);


    public List<ModelVO> getModelVOList(Integer userId, Integer configId);

    public ModelVO getModelVO(Integer userId, Integer modelId);

    /**
     * 在训练模型前调用，将模型状态刷新
     * @author   fanyanpeng
     * @date 2023/4/25 20:18
     * @param userId
     * @param modelId
     * @return cn.seecoder.ai.model.vo.ModelVO
     */
    public ModelVO renewModel(Integer userId, Integer modelId);

    public ModelVO syncTrainModel(Integer userId, Integer modelId);

    public void asyncTrainModel(Integer userId, Integer modelId);
}
